

var mongodb=require('./db');
var crypro=require('crypto');
function User(user){
	this.name=user.name;
	this.password=user.password;
	this.telephone=user.telephone;
	this.email=user.email;
	this.says=user.says;
	this.head=user.head;
	this.sex=user.sex;
	//this.head=user.head;
};
module.exports=User;

//存储用户信息，用于注册：
//创建一个prototype对象save被User继承
User.prototype.save=function(callback){
	//要存入数据库的用户文档
	var md5=crypro.createHash('md5'),
	email_MD5=md5.update(this.email.toLowerCase()).digest('hex');
	//head="http://www.gravatar.com/avatar/"+email_MD5+"?s=48";
//	创建数组user用来存放信息
	var user={
		name:this.name,
		head:this.head,
		password:this.password,
		telephone:this.telephone,
		email:this.email,
		sex:this.sex,
		concern:[],
		friends:[]
		
	};
	
	//打开数据库
	mongodb.open(function(err,db){
		if(err){
			return callback(err);//错误 返回err
		}
		//读取users集合
		db.collection('users',function(err,collection){
			if(err){
				mongodb.close();
				return callback(err);
			}
			//将用户数据插入 users集合
			collection.insert(user,{
				//这里的safe表示，
				//当属性值为true时，使用getLastError命令执行数据的存取操作，
				//该命令返回插入操作的执行结果，默认值为false
				safe:true
			},function(err,user){
				mongodb.close();
				if(err){
					return callback(err);
				}
				callback(null,user[0]);//成功，err为null，并返回存储后的用户文档
				
			});
		});
	});
};

//读取用户信息：
User.getname=function(name,callback){
	
	mongodb.open(function(err,db){
		
		if(err){
			return callback(err);
		}
		db.collection('users',function(err,collection){
			if(err){
				mongodb.close();
				return callback(err);
				
			}
			
			//查找用户名（name键）值为name的一个文档
			collection.findOne({
				name:name
			},function(err,user){
				mongodb.close();
				if(err){
				return	callback(err);
				
				}
				
				/*if(user){
						collection.update({
							"name":name
							
						},function(err){  
                       	mongodb.close();
                        if(err) {
                            return callback(err);
                        }
                 		});*/
					callback(null,user);
				//}
			});
		});
	});
};

User.update=function(name,head,callback){
	mongodb.open(function(err,db){
		if(err){
			return callback(err);
		}
		db.collection('users',function(err,collection){
			if(err){
				mongodb.close();
				return callback(err);
			}
			collection.update({
				"name":name
				
				/*"telephone":telephone,
				"email":email*/
			},{
				$set:{head:head}
			},function(err){
				mongodb.close();
				if(err){
					return callback(err);
				}
				return callback(null);
			});
		});
	});
	
};
User.updateinfo=function(name,sex,telephone,email,says,callback){
	mongodb.open(function(err,db){
		if(err){
			return callback(err);
		}
		db.collection('users',function(err,collection){
			if(err){
				mongodb.close();
				return callback(err);
			}
			collection.update({
				"name":name,
				
				
			},{
				$set:{
					sex:sex,
					telephone:telephone,
					email:email,
					says:says
					
				}
			},function(err){
				mongodb.close();
				if(err){
					return callback(err);
				}
				return callback(null);
			});
		});
	});
	
};

	//获取一篇文章
	User.getOne= function(name,callback){
		mongodb.open(function(err,db){
			if(err){
				return callback(err);
			}
			db.collection('users',function(err,collection){
				if(err){
					mongodb.close();
					return callback(err);
				}
				collection.findone({
					"name":name
				},function(err,doc){
					mongodb.close();
					if(err){
						return callback(err);
					}
					
					callback(null,doc);
				});
			});
		});
	};
	
